#pragma once

class COptimizer
{
public:
	COptimizer();
	~COptimizer();

	VOID Start();
	static BOOL EnableDebugPrivilege(BOOL bEnable);
	static BOOL SetPrivilege(LPCTSTR lpszPrivilege, BOOL bEnablePrivilege);

private:
	static BOOL HasTurnOn(LPCTSTR lpSectionName);
	static DWORD WINAPI CleanAutoruns(PVOID param);
	static DWORD WINAPI CleanRightMenuItems(PVOID param);
	static DWORD WINAPI CleanSystemEventLogs(PVOID param);
	static DWORD WINAPI CleanScheduledTasks(PVOID param);
	static DWORD WINAPI CleanSystemTempFiles(PVOID param);
	static DWORD WINAPI DisableHardwareDevices(PVOID param);
	static DWORD WINAPI DisableSystemServices(PVOID param);
	static DWORD WINAPI RemovedGhostDevices(PVOID param);
};

